#include <iostream>
#include <string>
#include <queue>
using namespace std;

struct water{
	int x,y;
};

int main(){
	bool ans=true;
	int n,m;
	cin>>n>>m;
	char dic;
	cin>>dic;
	char a[n][m];
	queue<water> q;
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			cin>>a[i][j];
			if(a[i][j] == 'o'){
				water l;
				l.x = i;
				l.y = j;
				q.push(l);
			}
		}
	}
	for(water it=q.front();!q.empty();q.pop(),it=q.front()){
		if(!ans)
			break;
		if(dic == '^'){
			for(int i=it.x;i>=0;i--){
				if(a[i][it.y] == 'x'){
					ans = false;
					break;
				}
			}
		}
		else if(dic == 'v'){
			for(int i=it.x;i<n;i++){
				if(a[i][it.y] == 'x'){
					ans = false;
					break;
				}
			}
		}
		else if(dic == '<'){
			for(int i=it.y;i>=0;i--){
				if(a[it.x][i] == 'x'){
					ans = false;
					break;
				}
			}
		}
		else if(dic == '>'){
			for(int i=it.y;i<m;i++){
				if(a[it.x][i] == 'x'){
					ans = false;
					break;
				}
			}
		}
	}
	if(ans)
		cout<<"OK";
	else
		cout<<"GG";
	return 0;
} 
